草庐IT

Java Quartz 作业持久化

全部标签

hadoop - 无法获取 Master Kerberos 主体以用作 Talend 批处理作业的更新程序

我们正在尝试使用talend批处理(spark)作业访问Kerberos集群中的配置单元,但我们收到以下“无法获取主Kerberos主体以用作更新程序”错误。通过在talend中使用标准作业(非spark),我们可以毫无问题地访问hive。观察结果如下:当我们运行sparkjobs时,talend可以连接到hiveMetastore并验证语法。例如,如果我提供了错误的表格命名它确实返回“找不到表”。当我们从没有数据的表中选择count(*)时,它返回“NULL”,但如果Hdfs(table)中存在某些数据,它会因错误而失败“无法获得主Kerberos主体以用作更新程序”。我不确定导致t

java - 更改 Hadoop 作业的拆分数

我目前正在编写代码以使用Hadoop处理单个图像,因此我的输入只有一个文件(.png)。我有可以运行作业的工作代码,但不是运行顺序mappers,它只运行一个mapper并且从不生成其他mappers。我已经创建了我自己的FileInputFormat和RecordReader类的扩展,以便创建(我认为的)“n”个自定义splits->"n"map任务。我一直在疯狂地在网上搜索这种性质的示例以供学习,但我所能找到的只是处理将整个文件拆分的示例(意味着只有一个mapper)或为每个map任务使用文本文件中的固定行数(例如3行)。我想做的是发送一对坐标((x1,y1),(x2,y2))到坐

hadoop - gcloud 控制台指示作业正在运行,而 hadoop 应用程序管理器指示作业已完成

我提交给spark集群的作业没有完成。我看到它永远悬而未决,但是日志显示即使是sparkjetty连接器也已关闭:17/05/2311:53:39INFOorg.spark_project.jetty.server.ServerConnector:StoppedServerConnector@4f67e3df{HTTP/1.1}{0.0.0.0:4041}我在yarn上运行最新的clouddataprocv1.1(spark2.0.2)。我通过gcloudapi提交spark作业:gclouddataprocjobssubmitspark--projectstage--clusterd

java - Oozie 作业失败 Mapr 6.x

我正尝试在yarn-client模式下向oozie提交一个spark作业。当我在oozie之外运行spark作业时,它运行良好。但是当我提交oozie作业时,它一直失败并出现以下错误:Exceptioninthread"main"java.lang.IllegalStateException:basedirjob.jar/libdoesnotexist.atorg.apache.tools.ant.DirectoryScanner.scan(DirectoryScanner.java:871)atorg.apache.spark.classpath.ClasspathFilter$$a

hadoop - Hector 的批处理 Mutation 与使用 Hadoop 作业将数据加载到 Cassandra 中?

有人可以强调Hector的批处理变异和使用Hadoop作业将数据加载到Cassandra的优缺点吗?我知道在Hector中您可以执行以下操作:mutator.addInsertion(...);mutator.execute();在Hadoop中,您可以使用MR作业将数据加载到Cassandra。我正在寻找使用或不使用它们的原因。谢谢! 最佳答案 如果数据源当前不在hadoop(或hbase)中,我建议只使用如上所述的Mutator的多线程加载器来减少移动部件的数量。这个要点是过时的,但方法是相似的:https://gist.git

performance - 平衡 HDFS -> HBase mapreduce 作业的想法

对于客户,我一直在研究在AWSEC2上运行Cloudera风格的hadoop集群的短期可行性。在大多数情况下,结果是预期的,逻辑卷的性能大多不可靠,也就是说尽我所能让集群在这种情况下运行得相当好。昨晚我对他们的导入程序脚本进行了全面测试,以从指定的HDFS路径中提取数据并将其推送到Hbase。他们的数据有些不同寻常,因为记录小于1KB,并且被压缩到9MB的gzipblock中。总共有大约50万条文本记录从gzip中提取出来,经过完整性检查,然后推送到reducer阶段。作业在环境的预期范围内运行(溢出记录的数量是我预料到的)但是一个非常奇怪的问题是当作业运行时,它使用8个reducer

graph - 将多个顺序 HBase 查询的结果传递给 Mapreduce 作业

我有一个HBase数据库,它存储有向图的邻接表,每个方向的边存储在一对列族中,其中每一行表示一个顶点。我正在编写一个mapreduce作业,它将所有节点作为其输入,这些节点也具有从相同顶点指向的边,因为具有指向其他顶点(指定为查询的主题)的边。这有点难以解释,但在下图中,当查询顶点“A”时,作为输入的节点集将是{A,B,C},因为它们都具有来自顶点的边'1':为了在HBase中执行此查询,我首先在产生{1}的反向边列族中查找边为“A”的顶点,然后,对于该集合中的每个元素,从该元素中查找边为“A”的顶点该集合的前向边缘列族。这应该会产生一组键值对:{1:{A,B,C}}。现在,我想获取这

hadoop - 如何更改每个作业的 io.sort.mb?

我想知道是否可以更改每个作业的io.sort.mb值?我知道您可以在mapred-site.xml中为参数设置一个值,但我想以编程方式在不同的作业中使用不同的值。我尝试了conf.setInt("io.sort.mb",someValue)但它似乎不起作用。JVM设置有足够的内存(如2.25GB)并且没有其他作业在运行。 最佳答案 可以,提交前在Configuration(早期版本为JobConf)中设置即可。它确实有效;我在Mahout中使用它。确保在设置值之后和提交之前将conf设置到您的Job上。确保您也设置了正确的conf!

hadoop - 如何限制在 map reduce 作业中发送到 reducer 的记录数?

我有一个超过300000行的文件,它是mapreduce作业的输入,我希望该作业仅处理该文件的前1000行。有什么好的方法可以限制发送到reducer的记录数吗?我只需要一个简单的identityreducer就可以写出我的输出。目前,reducer写出的行数与输入中的行数一样多。 最佳答案 首先,确保您的mapreduce程序设置为仅使用一个reducer。它必须明确设置,否则Hadoop可能会选择其他一些数字,然后就没有好的方法来协调reduce任务以确保它们发出的总数不超过1000。然后,您可以简单地在Reducer类中维护一

hadoop - 将 map reduce 作业的输出记录到文本文件

我一直在使用这个jobclient.monitorandprintjob()方法将mapreduce作业的输出打印到控制台。我的用法是这样的:job_client.monitorAndPrintJob(job_conf,job_client.getJob(j.getAssignedJobID()))输出结果如下(打印在控制台):13/03/0407:20:00INFOmapred.JobClient:Runningjob:job_201302211725_1013913/03/0407:20:01INFOmapred.JobClient:map0%reduce0%13/03/0407: